Ŀ Ŀ Yuvarlak Ke VESA kartlar II ٳ PS 26 Eyll'95 Alex PAMIR yi gnler sevgili Yuvarlak Ke okurlar. Alemin en matrak kelerinden biri olan yuvarlak ke bu ay da sizlerle. Bu ay geen aydan kalan VESA konusunu incelemeye devam edeceiz. Geen ay grdmz kadaryla artk bilgisayarmzdaki Super VGA kartnn VESA uyumunu ve destekledii modlar tesbit etmeyi rendik. Bu ay da bu modlarda ekrana nasl erieceimizi rnekli bir ekilde greceiz. Listemizdeki ekran modlarndan istediimiz birini setiimizde, ekran bu mod'da amadan nce kontrol etmemiz gereken bir nokta daha var. Bu da monitrmzn bu ekran modunu gsterip gstermeyeceidir. Aslnda bunu bilgisayar alrken satcnn bize verdii bilgiden yahut monitrn kullanm klavuzundan renebiliriz ama bu bilgilere ben pek gvenmem. Bunu yazlm olarak anlamann yolu ise programmzdaki modbuf.modeflag baytnn dier bir bitini kontrol etmekle olur (0.bit). Bu kontrol yapldktan sonra VESA BIOS'unun 02H numaral fonksiyonunu ararak istediimiz modda ekran aabiliriz. ķ Interrupt 10h Function 4Fh AH : 4Fh AL : 02h BX : istenen modun numaras (15. biti 1 olursa Video RAM'de eskiden bulunan grafik datas silinmez) ͼ Modu atktan sonra mutlaka bunu test etmemiz gerekir. Bunu da ya interrupt dn AH'a ve AL'a bakarak yapabiliriz, ki AH'da 00h ve AL'da 4Fh varsa tamam demektir; veya VESA BIOS'un 03h numaral fonksiyonunu kullarak ekrann u anki modunu renip bizim istediimizle karlatrrz. 03h fonksiyonu yledir: ķ Interrupt 10h Function 4Fh AH : 4Fh AL : 03h Dnte: BX : istenen modun numaras ͼ Modumuz artk hazr olduuna gre artk tek yapmamz gereken ekran hafzasna bilgi yazp bunu ekranda grmek. Fakat kazn ayai... pardon VESA'nn hafzas yle deil. Bildiiniz gibi SVGA kartlarnn 2MB, 4MB gibi 256 KB 'dan daha byk hafzalar olabiliyor. Fakat bizim hafzada ekran adresleyebildiimiz blge sadece A000:0000'dan B000:0000'a kadar olan 64KB'lk blge. Ekran bykl 64KB'dan az hafza gerektiren modlar iin fazla bir sorun yok. En fazla sayfa deitirme problemi kabilir. Fakat 640x480x256 gibi byk modlar iin biz ne yapacaz. Bunun zm, bizim 64KB'lk blgeyi ekran hafzasna karlkl ilikilendirmek. Bylece biz bilgisayara, ben kendi hafza blgemi ekran hafzasnn u u blgesi olarak kullanmak istiyorum dedikten sonra o blgeyi kullanmakla sorun hallediliyor. Buna "page framing" ad veriliyor ve zellikle EMS hafza adreslemesinde kullanlyor. Bu sistemin tek dezavantaj tek komutta en fazla erevemiz kadar bilgi gnderebilmemiz. Bu yzden 64K'dan byk ekranlar ancak birka seferde izilebiliyor. VESA'da bu ereveye "Access window" yani eriim penceresi deniyor. Bu eriim penceresini kullanmak iin ise 05h numaral alt fonksiyon kullanlyor. Kullanmdaki bir nemli zellik de pencerenin hareket oran. Bu orann katlar olarak belirlenen adres deiikliiyle pencerenin Video RAM'daki yeri belirleniyor. Yani eer oran 1K ise DX registerna konulan 128 deeri ekran hafzasnn 128K'dan balamas gerektii anlamna geliyor. Bir de baz kartlarda iki eriim penceresi olabiliyor; biri yazmak dieri okumak iin. O an yaplacak ileme gre o numaral pencerenin yerinin deimesi gerekir. Hangi pencerenin ne ie yarad da o pencerenin pencere bilgileri word'nn bitlerine baklarak anlalr. 0. bit, pencerenin olup olmadn (1= var), 1. bit okunabilir olup olmadn (1=okunabilir), 2. bit yazlabilir olup olmadn (1=yazlabilir) gsterir. Deerler yle: ķ Interrupt 10h Function 4Fh AH : 4Fh AL : 05h BH : 00h BL : eriim penceresi numaras (0 veya 1) DX : eriim blgesi adresi (hareket orani ile arlp asl degeri oluturur) ͼ Elimizdeki bu bilgilerle VESA modundaki bir SVGA karta nasl eriim yaplacan geen ayki rnein gelitirilmii olan bu ayki rnekte grebilirsiniz. Gelecek ay buluuncaya kadar size iyi programlamalar.